package com.cloudkinto.vo.system.wms;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class WmsGlobalSetEntity {


    @ApiModelProperty("面单")
    private Label label;

    @ApiModelProperty("入库")
    private Input input;

    @ApiModelProperty("一件代发出库")
    private Output output;

    @ApiModelProperty("备货中转出库")
    private FbaOutput fbaOutput;

    @ApiModelProperty("退件")
    private Back back = new Back();

    @ApiModelProperty("优先出库")
    private DeliveryPriority deliveryPriority;

    @ApiModelProperty("入库人类")
    private ReturnClaim returnClaim;


    @Data
    public static class Label {
        @ApiModelProperty("是否允许OMS下载面单")
        private int labelDownloadEnable;
    }


    @Data
    public static class ReturnClaim {
        @ApiModelProperty("入库单失效时间(天)")
        private int deadTime;
    }

    @Data
    public static class Output {
        @ApiModelProperty("PDA复核后立即出库")
        private int pdaReviewOutBound;
        @ApiModelProperty("拣货员在PDA中仅能看到分配给自己的波次拣货单")
        private int pickerSelfWaveList;
        @ApiModelProperty("是否禁止OMS提交重复参考单号的单据")
        private int referOrderNoDuplicate;
    }


    @Data
    public static class Input {
        @ApiModelProperty("是否每一个入库单只对应一个上架单")
        private int oneInboundOneShelf;
    }

    @Data
    private static class FbaOutput {
        @ApiModelProperty("是否开启调整数量出库")
        private int adjust_outbound;

        @ApiModelProperty("单据提交后，OMS不可以修改期望到仓日期")
        private int exception_time_update;

        @ApiModelProperty("单据提交后，提醒客户填写收件人电话")
        private int verifyReceiver;

    }

    @Data
    public static class Back {
        @ApiModelProperty("退件扫描不自动识别物流商退件")
        private int returnLogistics;
    }


    @Data
    public static class DeliveryPriority {
        @ApiModelProperty("平台退件")
        private int return_platform;
        @ApiModelProperty("服务商退件")
        private int return_carrier;
        @ApiModelProperty("买家退件")
        private int return_buy;
    }


}
